package com.bw.controller;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.bw.service.ServiceDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;
import java.util.Map;

@RestController
public class Controller {
    @Autowired
    ServiceDao serviceDao;

    //9）使用存储过程查询订单状态为已支付（1002）总金额sql语句（5分）
    //18）完成根据查询订单状态为已支付（1002）总金额的数字翻牌器（5分）
    @RequestMapping("showType")
    public Object showType(){
        List<Map> maps = serviceDao.showType();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");
        jsonObject.put("data",maps.get(0).get("s"));
        return jsonObject;
    }

    //10）根据各省份查询订单的总成交额sql语句（5分）
    //19）完成根据各省份查询订单的总成交额的省份热力图（5分）
    @RequestMapping("showSum")
    public Object showSum(){
        List<Map> maps = serviceDao.showSum();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");

        JSONObject dataObject = new JSONObject();

        JSONArray dataArray = new JSONArray();

        for (Map map : maps) {
            JSONObject mapDataObject = new JSONObject();
            mapDataObject.put("name",map.get("name"));
            mapDataObject.put("value",map.get("s"));
            dataArray.add(mapDataObject);
        }

        dataObject.put("mapData",dataArray);

        jsonObject.put("data",dataObject);
        return jsonObject;
    }

    //11）求出各试卷平均成绩大于60的sql语句（5分）
    //20）完成求出各试卷平均成绩大于60的柱状图（5分）
    @RequestMapping("showAvg")
    public Object showAVg(){
        List<Map> maps = serviceDao.showAvg();
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("status",0);
        jsonObject.put("msg","");

        JSONObject dataObject = new JSONObject();

        JSONArray xArray = new JSONArray();
        JSONArray yArray = new JSONArray();

        dataObject.put("categories",xArray);

        JSONObject yObject = new JSONObject();

        JSONArray dataArray = new JSONArray();

        yObject.put("name","各试卷");

        yObject.put("data",dataArray);

        for (Map map : maps) {
            xArray.add(map.get("paper_title"));
            dataArray.add(map.get("a"));
        }

        yArray.add(yObject);

        dataObject.put("series",yArray);

        jsonObject.put("data",dataObject);
        return jsonObject;
    }

    //12）查询测验分数的最高与最低的差值sql语句（5分）
    @RequestMapping("showCz")
    public Object showCz(){
        List<Map> maps = serviceDao.showCz();
        return maps;
    }

    //13）查询测验分数的最高测验表信息sql语句（5分）
    @RequestMapping("showMax")
    public Object showMax(){
        List<Map> maps = serviceDao.showMax();
        return maps;
    }

    //14）查询各订单状态的个数sql语句（5分）
    @RequestMapping("showCou")
    public Object showCou(){
        List<Map> maps = serviceDao.showCou();
        return maps;
    }

    //15）查询各省份下单的用户人数超过10000 的sql语句（5分）
    @RequestMapping("showKong")
    public Object showKong(){
        List<Map> maps = serviceDao.showKong();
        return maps;
    }
}
